package br.com.fiap.vendas.business.service.impl;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;

import javax.ejb.EJB;
import javax.ejb.LocalBean;
import javax.ejb.Remote;
import javax.ejb.Stateless;

import br.com.fiap.vendas.business.dao.interfaces.ProdutoDAO;
import br.com.fiap.vendas.business.entity.ProdutoEntity;
import br.com.fiap.vendas.business.service.interfaces.ProdutoService;
import br.com.fiap.vendas.business.vo.ProdutoVO;

@Remote(ProdutoService.class)
@LocalBean
@Stateless
public class ProdutoServiceImpl implements ProdutoService {

	@EJB
	ProdutoDAO produtoDAO;
	
	@Override
	public void inserirProduto(ProdutoVO produtoVO) {
		ProdutoEntity entity = ProdutoEntity.build(produtoVO);
		produtoDAO.inserir(entity);
	}

	@Override
	public List<ProdutoVO> listarTodosProdutos() {
		List<ProdutoEntity> produtosEntity = produtoDAO.buscarTodosProdutos();
		return buildProdutosVOList(produtosEntity);
	}

	@Override
	public List<ProdutoVO> buscarProdutos(final BigDecimal valor, final Integer quantidade) {
		List<ProdutoEntity> produtosEntity = produtoDAO.buscarProdutos(valor, quantidade);
		return buildProdutosVOList(produtosEntity);
	}
	
	private List<ProdutoVO> buildProdutosVOList(
			List<ProdutoEntity> produtosEntity) {
		List<ProdutoVO> produtoVOs = new ArrayList<ProdutoVO>();
		for(ProdutoEntity entity: produtosEntity){
			produtoVOs.add(entity.buildProdutoVO());
		}
		return produtoVOs;
	}

}
